static const float max_dct_core_a[] =
{
     5.572937315437795e-02f,
     5.435713103213160e-02f,
     5.164643594289910e-02f,
     4.766403419605858e-02f,
     4.250798573945089e-02f,
     3.630524959802148e-02f,
     2.920855772127337e-02f,
     2.139265421578210e-02f,
     1.304999256534943e-02f,
     4.385996787515619e-03f,
     5.435713103213160e-02f,
     4.250798573945089e-02f,
     2.139265421578210e-02f,
    -4.385996787515612e-03f,
    -2.920855772127336e-02f,
    -4.766403419605858e-02f,
    -5.572937315437795e-02f,
    -5.164643594289911e-02f,
    -3.630524959802151e-02f,
    -1.304999256534941e-02f,
     5.164643594289910e-02f,
     2.139265421578210e-02f,
    -2.139265421578209e-02f,
    -5.164643594289910e-02f,
    -5.164643594289911e-02f,
    -2.139265421578213e-02f,
     2.139265421578211e-02f,
     5.164643594289909e-02f,
     5.164643594289910e-02f,
     2.139265421578213e-02f,
     4.766403419605858e-02f,
    -4.385996787515612e-03f,
    -5.164643594289910e-02f,
    -4.250798573945090e-02f,
     1.304999256534939e-02f,
     5.435713103213161e-02f,
     3.630524959802152e-02f,
    -2.139265421578210e-02f,
    -5.572937315437795e-02f,
    -2.920855772127336e-02f,
     4.250798573945089e-02f,
    -2.920855772127336e-02f,
    -5.164643594289911e-02f,
     1.304999256534939e-02f,
     5.572937315437795e-02f,
     4.385996787515657e-03f,
    -5.435713103213161e-02f,
    -2.139265421578214e-02f,
     4.766403419605858e-02f,
     3.630524959802153e-02f,
     3.630524959802148e-02f,
    -4.766403419605858e-02f,
    -2.139265421578213e-02f,
     5.435713103213161e-02f,
     4.385996787515657e-03f,
    -5.572937315437795e-02f,
     1.304999256534937e-02f,
     5.164643594289910e-02f,
    -2.920855772127332e-02f,
    -4.250798573945090e-02f,
     2.920855772127337e-02f,
    -5.572937315437795e-02f,
     2.139265421578211e-02f,
     3.630524959802152e-02f,
    -5.435713103213161e-02f,
     1.304999256534937e-02f,
     4.250798573945089e-02f,
    -5.164643594289908e-02f,
     4.385996787515504e-03f,
     4.766403419605861e-02f,
     2.139265421578210e-02f,
    -5.164643594289911e-02f,
     5.164643594289909e-02f,
    -2.139265421578210e-02f,
    -2.139265421578214e-02f,
     5.164643594289910e-02f,
    -5.164643594289908e-02f,
     2.139265421578208e-02f,
     2.139265421578216e-02f,
    -5.164643594289915e-02f,
     1.304999256534943e-02f,
    -3.630524959802151e-02f,
     5.164643594289910e-02f,
    -5.572937315437795e-02f,
     4.766403419605858e-02f,
    -2.920855772127332e-02f,
     4.385996787515504e-03f,
     2.139265421578216e-02f,
    -4.250798573945092e-02f,
     5.435713103213160e-02f,
     4.385996787515619e-03f,
    -1.304999256534941e-02f,
     2.139265421578213e-02f,
    -2.920855772127336e-02f,
     3.630524959802153e-02f,
    -4.250798573945090e-02f,
     4.766403419605861e-02f,
    -5.164643594289915e-02f,
     5.435713103213160e-02f,
    -5.572937315437796e-02f
};

static const float dct_core_a[] =
{
     7.881323533747238e-02f,
     7.687259191733195e-02f,
     7.303909015868119e-02f,
     6.740712359748102e-02f,
     6.011536994189358e-02f,
     5.134337636686234e-02f,
     4.130713846678219e-02f,
     3.025378172711701e-02f,
     1.845547647478522e-02f,
     6.202736141429415e-03f,
     7.687259191733195e-02f,
     6.011536994189358e-02f,
     3.025378172711701e-02f,
    -6.202736141429404e-03f,
    -4.130713846678218e-02f,
    -6.740712359748102e-02f,
    -7.881323533747238e-02f,
    -7.303909015868121e-02f,
    -5.134337636686238e-02f,
    -1.845547647478519e-02f,
     7.303909015868119e-02f,
     3.025378172711701e-02f,
    -3.025378172711701e-02f,
    -7.303909015868119e-02f,
    -7.303909015868121e-02f,
    -3.025378172711705e-02f,
     3.025378172711703e-02f,
     7.303909015868118e-02f,
     7.303909015868119e-02f,
     3.025378172711706e-02f,
     6.740712359748102e-02f,
    -6.202736141429404e-03f,
    -7.303909015868119e-02f,
    -6.011536994189359e-02f,
     1.845547647478516e-02f,
     7.687259191733196e-02f,
     5.134337636686239e-02f,
    -3.025378172711702e-02f,
    -7.881323533747238e-02f,
    -4.130713846678218e-02f,
     6.011536994189358e-02f,
    -4.130713846678218e-02f,
    -7.303909015868121e-02f,
     1.845547647478516e-02f,
     7.881323533747238e-02f,
     6.202736141429469e-03f,
    -7.687259191733196e-02f,
    -3.025378172711707e-02f,
     6.740712359748102e-02f,
     5.134337636686240e-02f,
     5.134337636686234e-02f,
    -6.740712359748102e-02f,
    -3.025378172711705e-02f,
     7.687259191733196e-02f,
     6.202736141429469e-03f,
    -7.881323533747238e-02f,
     1.845547647478515e-02f,
     7.303909015868119e-02f,
    -4.130713846678212e-02f,
    -6.011536994189359e-02f,
     4.130713846678219e-02f,
    -7.881323533747238e-02f,
     3.025378172711703e-02f,
     5.134337636686239e-02f,
    -7.687259191733196e-02f,
     1.845547647478515e-02f,
     6.011536994189358e-02f,
    -7.303909015868118e-02f,
     6.202736141429252e-03f,
     6.740712359748108e-02f,
     3.025378172711701e-02f,
    -7.303909015868121e-02f,
     7.303909015868118e-02f,
    -3.025378172711702e-02f,
    -3.025378172711707e-02f,
     7.303909015868119e-02f,
    -7.303909015868118e-02f,
     3.025378172711699e-02f,
     3.025378172711710e-02f,
    -7.303909015868128e-02f,
     1.845547647478522e-02f,
    -5.134337636686238e-02f,
     7.303909015868119e-02f,
    -7.881323533747238e-02f,
     6.740712359748102e-02f,
    -4.130713846678212e-02f,
     6.202736141429252e-03f,
     3.025378172711710e-02f,
    -6.011536994189360e-02f,
     7.687259191733195e-02f,
     6.202736141429415e-03f,
    -1.845547647478519e-02f,
     3.025378172711706e-02f,
    -4.130713846678218e-02f,
     5.134337636686240e-02f,
    -6.011536994189359e-02f,
     6.740712359748108e-02f,
    -7.303909015868128e-02f,
     7.687259191733195e-02f,
    -7.881323533747239e-02f
};

static const cos_msin_t cos_msin_5[5] =
{
    {9.969173337331280e-01f, -7.845909572784494e-02f},
    {9.723699203976766e-01f, -2.334453638559054e-01f},
    {9.238795325112867e-01f, -3.826834323650898e-01f},
    {8.526401643540922e-01f, -5.224985647159488e-01f},
    {7.604059656000309e-01f, -6.494480483301837e-01f}
};

static const cos_msin_t cos_msin_10[10] =
{
    {9.992290362407229e-01f, -3.925981575906861e-02f},
    {9.930684569549263e-01f, -1.175373974578376e-01f},
    {9.807852804032304e-01f, -1.950903220161282e-01f},
    {9.624552364536473e-01f, -2.714404498650743e-01f},
    {9.381913359224842e-01f, -3.461170570774930e-01f},
    {9.081431738250813e-01f, -4.186597375374281e-01f},
    {8.724960070727972e-01f, -4.886212414969549e-01f},
    {8.314696123025452e-01f, -5.555702330196022e-01f},
    {7.853169308807449e-01f, -6.190939493098340e-01f},
    {7.343225094356856e-01f, -6.788007455329417e-01f}
};

static const cos_msin_t cos_msin_20[20] =
{
    {9.998072404820648e-01f, -1.963369246062830e-02f},
    {9.982656101847159e-01f, -5.887080365118903e-02f},
    {9.951847266721969e-01f, -9.801714032956060e-02f},
    {9.905693404435773e-01f, -1.370123416819680e-01f},
    {9.844265680898916e-01f, -1.757962799343545e-01f},
    {9.767658813208724e-01f, -2.143091530650507e-01f},
    {9.675990923602598e-01f, -2.524915770151580e-01f},
    {9.569403357322088e-01f, -2.902846772544623e-01f},
    {9.448060464668780e-01f, -3.276301795616935e-01f},
    {9.312149347588036e-01f, -3.644704998791496e-01f},
    {9.161879571171360e-01f, -4.007488331031410e-01f},
    {8.997482840522215e-01f, -4.364092406733421e-01f},
    {8.819212643483550e-01f, -4.713967368259976e-01f},
    {8.627343859777918e-01f, -5.056573733779846e-01f},
    {8.422172337162865e-01f, -5.391383229110002e-01f},
    {8.204014435255136e-01f, -5.717879602276122e-01f},
    {7.973206537727071e-01f, -6.035559419535714e-01f},
    {7.730104533627370e-01f, -6.343932841636455e-01f},
    {7.475083268625968e-01f, -6.642524379112817e-01f},
    {7.208535967029188e-01f, -6.930873625456359e-01f}
};

static const cos_msin_t cos_msin_40[40] =
{
    {9.999518089593280e-01f, -9.817319337149617e-03f},
    {9.995663085020212e-01f, -2.944817324796316e-02f},
    {9.987954562051724e-01f, -4.906767432741801e-02f},
    {9.976395492470157e-01f, -6.866825888437376e-02f},
    {9.960990332516871e-01f, -8.824237052036951e-02f},
    {9.941745021174282e-01f, -1.077824630427593e-01f},
    {9.918666977876260e-01f, -1.272810033739132e-01f},
    {9.891765099647810e-01f, -1.467304744553617e-01f},
    {9.861049757675088e-01f, -1.661233781457655e-01f},
    {9.826532793307118e-01f, -1.854522381115909e-01f},
    {9.788227513490724e-01f, -2.047096027093796e-01f},
    {9.746148685640450e-01f, -2.238880478584984e-01f},
    {9.700312531945440e-01f, -2.429801799032639e-01f},
    {9.650736723115474e-01f, -2.619786384633375e-01f},
    {9.597440371568574e-01f, -2.808760992712921e-01f},
    {9.540444024062804e-01f, -2.996652769962566e-01f},
    {9.479769653775104e-01f, -3.183389280525497e-01f},
    {9.415440651830208e-01f, -3.368898533922201e-01f},
    {9.347481818282924e-01f, -3.553109012804161e-01f},
    {9.275919352557240e-01f, -3.735949700525164e-01f},
    {9.200780843345949e-01f, -3.917350108519559e-01f},
    {9.122095257974677e-01f, -4.097240303476953e-01f},
    {9.039892931234433e-01f, -4.275550934302821e-01f},
    {8.954205553686970e-01f, -4.452213258854682e-01f},
    {8.865066159447464e-01f, -4.627159170443501e-01f},
    {8.772509113449243e-01f, -4.800321224090111e-01f},
    {8.676570098195440e-01f, -4.971632662526544e-01f},
    {8.577286100002721e-01f, -5.141027441932217e-01f},
    {8.474695394742344e-01f, -5.308440257395095e-01f},
    {8.368837533084094e-01f, -5.473806568087964e-01f},
    {8.259753325248732e-01f, -5.637062622150167e-01f},
    {8.147484825274894e-01f, -5.798145481265136e-01f},
    {8.032075314806449e-01f, -5.956993044924334e-01f},
    {7.913569286406602e-01f, -6.113544074368165e-01f},
    {7.792012426405167e-01f, -6.267738216194696e-01f},
    {7.667451597285615e-01f, -6.419516025627030e-01f},
    {7.539934819618694e-01f, -6.568818989430414e-01f},
    {7.409511253549591e-01f, -6.715589548470183e-01f},
    {7.276231179845748e-01f, -6.859771119901928e-01f},
    {7.140145980512683e-01f, -7.001308118985236e-01f}
};

static const cos_msin_t cos_msin_80[80] =
{
    {9.999879521672569e-01f, -4.908718807997990e-03f},
    {9.998915712471080e-01f, -1.472568331145852e-02f},
    {9.996988186962042e-01f, -2.454122852291229e-02f},
    {9.994097130924373e-01f, -3.435440839968228e-02f},
    {9.990242823004072e-01f, -4.416427712706736e-02f},
    {9.985425634687357e-01f, -5.396988920950188e-02f},
    {9.979646030264866e-01f, -6.377029956168449e-02f},
    {9.972904566786902e-01f, -7.356456359966743e-02f},
    {9.965201894009746e-01f, -8.335173733189745e-02f},
    {9.956538754333033e-01f, -9.313087745019979e-02f},
    {9.946915982728195e-01f, -1.029010414206961e-01f},
    {9.936334506657989e-01f, -1.126612875746478e-01f},
    {9.924795345987100e-01f, -1.224106751992162e-01f},
    {9.912299612883853e-01f, -1.321482646281301e-01f},
    {9.898848511713010e-01f, -1.418731173322532e-01f},
    {9.884443338919700e-01f, -1.515842960100411e-01f},
    {9.869085482904458e-01f, -1.612808646778805e-01f},
    {9.852776423889412e-01f, -1.709618887603012e-01f},
    {9.835517733775615e-01f, -1.806264351800528e-01f},
    {9.817311075991542e-01f, -1.902735724480359e-01f},
    {9.798158205332763e-01f, -1.999023707530817e-01f},
    {9.778060967792817e-01f, -2.095119020515688e-01f},
    {9.757021300385286e-01f, -2.191012401568698e-01f},
    {9.735041230957107e-01f, -2.286694608286194e-01f},
    {9.712122877993118e-01f, -2.382156418617946e-01f},
    {9.688268450411880e-01f, -2.477388631755984e-01f},
    {9.663480247352773e-01f, -2.572382069021397e-01f},
    {9.637760657954398e-01f, -2.667127574748984e-01f},
    {9.611112161124317e-01f, -2.761616017169707e-01f},
    {9.583537325300114e-01f, -2.855838289290823e-01f},
    {9.555038808201862e-01f, -2.949785309773635e-01f},
    {9.525619356575953e-01f, -3.043448023808773e-01f},
    {9.495281805930367e-01f, -3.136817403988915e-01f},
    {9.464029080261377e-01f, -3.229884451178863e-01f},
    {9.431864191771733e-01f, -3.322640195382908e-01f},
    {9.398790240580331e-01f, -3.415075696609363e-01f},
    {9.364810414423427e-01f, -3.507182045732232e-01f},
    {9.329927988347390e-01f, -3.598950365349881e-01f},
    {9.294146324393044e-01f, -3.690371810640665e-01f},
    {9.257468871271640e-01f, -3.781437570215405e-01f},
    {9.219899164032445e-01f, -3.872138866966656e-01f},
    {9.181440823722039e-01f, -3.962466958914656e-01f},
    {9.142097557035307e-01f, -4.052413140049899e-01f},
    {9.101873155958178e-01f, -4.141968741172237e-01f},
    {9.060771497402148e-01f, -4.231125130726441e-01f},
    {9.018796542830616e-01f, -4.319873715634118e-01f},
    {8.975952337877069e-01f, -4.408205942121939e-01f},
    {8.932243011955153e-01f, -4.496113296546065e-01f},
    {8.887672777860675e-01f, -4.583587306212713e-01f},
    {8.842245931365562e-01f, -4.670619540194765e-01f},
    {8.795966850803829e-01f, -4.757201610144369e-01f},
    {8.748839996649583e-01f, -4.843325171101412e-01f},
    {8.700869911087115e-01f, -4.928981922297840e-01f},
    {8.652061217573113e-01f, -5.014163607957690e-01f},
    {8.602418620391045e-01f, -5.098862018092806e-01f},
    {8.551946904197751e-01f, -5.183068989294132e-01f},
    {8.500650933562288e-01f, -5.266776405518521e-01f},
    {8.448535652497071e-01f, -5.349976198870972e-01f},
    {8.395606083981356e-01f, -5.432660350382236e-01f},
    {8.341867329477124e-01f, -5.514820890781694e-01f},
    {8.287324568437381e-01f, -5.596449901265460e-01f},
    {8.231983057806959e-01f, -5.677539514259605e-01f},
    {8.175848131515837e-01f, -5.758081914178453e-01f},
    {8.118925199965048e-01f, -5.838069338177863e-01f},
    {8.061219749505210e-01f, -5.917494076903429e-01f},
    {8.002737341907743e-01f, -5.996348475233523e-01f},
    {7.943483613828813e-01f, -6.074624933017110e-01f},
    {7.883464276266063e-01f, -6.152315905806268e-01f},
    {7.822685114008164e-01f, -6.229413905583340e-01f},
    {7.761151985077279e-01f, -6.305911501482637e-01f},
    {7.698870820164444e-01f, -6.381801320506653e-01f},
    {7.635847622057965e-01f, -6.457076048236672e-01f},
    {7.572088465064846e-01f, -6.531728429537768e-01f},
    {7.507599494425343e-01f, -6.605751269258050e-01f},
    {7.442386925720670e-01f, -6.679137432922161e-01f},
    {7.376457044273930e-01f, -6.751879847418903e-01f},
    {7.309816204544317e-01f, -6.823971501682968e-01f},
    {7.242470829514670e-01f, -6.895405447370668e-01f},
    {7.174427410072399e-01f, -6.966174799529642e-01f},
    {7.105692504383896e-01f, -7.036272737262429e-01f}
};

static const cos_msin_t cos_msin_160[160] =
{
    {9.999969880372782e-01f, -2.454366796460292e-03f},
    {9.999728924443673e-01f, -7.363041249779567e-03f},
    {9.999247018391445e-01f, -1.227153828571993e-02f},
    {9.998524173827948e-01f, -1.717973963077875e-02f},
    {9.997560408170603e-01f, -2.208752701857829e-02f},
    {9.996355744641984e-01f, -2.699478219271537e-02f},
    {9.994910212269259e-01f, -3.190138690961086e-02f},
    {9.993223845883495e-01f, -3.680722294135883e-02f},
    {9.991296686118811e-01f, -4.171217207857533e-02f},
    {9.989128779411404e-01f, -4.661611613324671e-02f},
    {9.986720177998429e-01f, -5.151893694157748e-02f},
    {9.984070939916740e-01f, -5.642051636683749e-02f},
    {9.981181129001492e-01f, -6.132073630220858e-02f},
    {9.978050814884601e-01f, -6.621947867363034e-02f},
    {9.974680072993071e-01f, -7.111662544264533e-02f},
    {9.971068984547168e-01f, -7.601205860924312e-02f},
    {9.967217636558474e-01f, -8.090566021470375e-02f},
    {9.963126121827780e-01f, -8.579731234443989e-02f},
    {9.958794538942858e-01f, -9.068689713083816e-02f},
    {9.954222992276077e-01f, -9.557429675609919e-02f},
    {9.949411591981900e-01f, -1.004593934550765e-01f},
    {9.944360453994218e-01f, -1.053420695181141e-01f},
    {9.939069700023561e-01f, -1.102222072938831e-01f},
    {9.933539457554167e-01f, -1.150996891922159e-01f},
    {9.927769859840909e-01f, -1.199743976869403e-01f},
    {9.921761045906085e-01f, -1.248462153187112e-01f},
    {9.915513160536062e-01f, -1.297150246978405e-01f},
    {9.909026354277800e-01f, -1.345807085071262e-01f},
    {9.902300783435211e-01f, -1.394431495046788e-01f},
    {9.895336610065398e-01f, -1.443022305267465e-01f},
    {9.888134001974757e-01f, -1.491578344905386e-01f},
    {9.880693132714919e-01f, -1.540098443970461e-01f},
    {9.873014181578584e-01f, -1.588581433338614e-01f},
    {9.865097333595187e-01f, -1.637026144779952e-01f},
    {9.856942779526452e-01f, -1.685431410986913e-01f},
    {9.848550715861784e-01f, -1.733796065602395e-01f},
    {9.839921344813541e-01f, -1.782118943247859e-01f},
    {9.831054874312163e-01f, -1.830398879551410e-01f},
    {9.821951518001156e-01f, -1.878634711175852e-01f},
    {9.812611495231950e-01f, -1.926825275846723e-01f},
    {9.803035031058607e-01f, -1.974969412380297e-01f},
    {9.793222356232406e-01f, -2.023065960711564e-01f},
    {9.783173707196277e-01f, -2.071113761922186e-01f},
    {9.772889326079104e-01f, -2.119111658268416e-01f},
    {9.762369460689896e-01f, -2.167058493209000e-01f},
    {9.751614364511810e-01f, -2.214953111433043e-01f},
    {9.740624296696047e-01f, -2.262794358887845e-01f},
    {9.729399522055602e-01f, -2.310581082806711e-01f},
    {9.717940311058891e-01f, -2.358312131736727e-01f},
    {9.706246939823230e-01f, -2.405986355566504e-01f},
    {9.694319690108180e-01f, -2.453602605553894e-01f},
    {9.682158849308760e-01f, -2.501159734353663e-01f},
    {9.669764710448521e-01f, -2.548656596045146e-01f},
    {9.657137572172489e-01f, -2.596092046159851e-01f},
    {9.644277738739964e-01f, -2.643464941709040e-01f},
    {9.631185520017188e-01f, -2.690774141211269e-01f},
    {9.617861231469886e-01f, -2.738018504719892e-01f},
    {9.604305194155658e-01f, -2.785196893850531e-01f},
    {9.590517734716243e-01f, -2.832308171808502e-01f},
    {9.576499185369652e-01f, -2.879351203416211e-01f},
    {9.562249883902162e-01f, -2.926324855140505e-01f},
    {9.547770173660172e-01f, -2.973227995119985e-01f},
    {9.533060403541939e-01f, -3.020059493192281e-01f},
    {9.518120927989161e-01f, -3.066818220921279e-01f},
    {9.502952106978444e-01f, -3.113503051624320e-01f},
    {9.487554306012626e-01f, -3.160112860399338e-01f},
    {9.471927896111967e-01f, -3.206646524151973e-01f},
    {9.456073253805213e-01f, -3.253102921622629e-01f},
    {9.439990761120522e-01f, -3.299480933413494e-01f},
    {9.423680805576258e-01f, -3.345779442015508e-01f},
    {9.407143780171653e-01f, -3.391997331835298e-01f},
    {9.390380083377340e-01f, -3.438133489222048e-01f},
    {9.373390119125750e-01f, -3.484186802494346e-01f},
    {9.356174296801376e-01f, -3.530156161966958e-01f},
    {9.338733031230915e-01f, -3.576040459977578e-01f},
    {9.321066742673269e-01f, -3.621838590913509e-01f},
    {9.303175856809415e-01f, -3.667549451238308e-01f},
    {9.285060804732156e-01f, -3.713171939518375e-01f},
    {9.266722022935726e-01f, -3.758704956449495e-01f},
    {9.248159953305278e-01f, -3.804147404883323e-01f},
    {9.229375043106232e-01f, -3.849498189853822e-01f},
    {9.210367744973499e-01f, -3.894756218603648e-01f},
    {9.191138516900578e-01f, -3.939920400610481e-01f},
    {9.171687822228516e-01f, -3.984989647613298e-01f},
    {9.152016129634744e-01f, -4.029962873638600e-01f},
    {9.132123913121788e-01f, -4.074838995026576e-01f},
    {9.112011652005843e-01f, -4.119616930457218e-01f},
    {9.091679830905224e-01f, -4.164295600976372e-01f},
    {9.071128939728691e-01f, -4.208873930021739e-01f},
    {9.050359473663644e-01f, -4.253350843448814e-01f},
    {9.029371933164189e-01f, -4.297725269556770e-01f},
    {9.008166823939081e-01f, -4.341996139114278e-01f},
    {8.986744656939538e-01f, -4.386162385385277e-01f},
    {8.965105948346932e-01f, -4.430222944154668e-01f},
    {8.943251219560346e-01f, -4.474176753753967e-01f},
    {8.921180997184014e-01f, -4.518022755086881e-01f},
    {8.898895813014630e-01f, -4.561759891654830e-01f},
    {8.876396204028539e-01f, -4.605387109582400e-01f},
    {8.853682712368793e-01f, -4.648903357642744e-01f},
    {8.830755885332088e-01f, -4.692307587282903e-01f},
    {8.807616275355579e-01f, -4.735598752649081e-01f},
    {8.784264440003567e-01f, -4.778775810611837e-01f},
    {8.760700941954066e-01f, -4.821837720791227e-01f},
    {8.736926348985243e-01f, -4.864783445581868e-01f},
    {8.712941233961736e-01f, -4.907611950177941e-01f},
    {8.688746174820854e-01f, -4.950322202598127e-01f},
    {8.664341754558650e-01f, -4.992913173710469e-01f},
    {8.639728561215868e-01f, -5.035383837257176e-01f},
    {8.614907187863783e-01f, -5.077733169879345e-01f},
    {8.589878232589904e-01f, -5.119960151141624e-01f},
    {8.564642298483565e-01f, -5.162063763556797e-01f},
    {8.539199993621391e-01f, -5.204042992610306e-01f},
    {8.513551931052652e-01f, -5.245896826784689e-01f},
    {8.487698728784481e-01f, -5.287624257583958e-01f},
    {8.461641009766995e-01f, -5.329224279557898e-01f},
    {8.435379401878270e-01f, -5.370695890326298e-01f},
    {8.408914537909229e-01f, -5.412038090603096e-01f},
    {8.382247055548381e-01f, -5.453249884220465e-01f},
    {8.355377597366458e-01f, -5.494330278152808e-01f},
    {8.328306810800937e-01f, -5.535278282540700e-01f},
    {8.301035348140438e-01f, -5.576092910714722e-01f},
    {8.273563866508998e-01f, -5.616773179219247e-01f},
    {8.245893027850253e-01f, -5.657318107836131e-01f},
    {8.218023498911473e-01f, -5.697726719608341e-01f},
    {8.189955951227504e-01f, -5.737998040863485e-01f},
    {8.161691061104588e-01f, -5.778131101237274e-01f},
    {8.133229509604062e-01f, -5.818124933696910e-01f},
    {8.104571982525948e-01f, -5.857978574564389e-01f},
    {8.075719170392435e-01f, -5.897691063539708e-01f},
    {8.046671768431229e-01f, -5.937261443724019e-01f},
    {8.017430476558816e-01f, -5.976688761642677e-01f},
    {7.987995999363579e-01f, -6.015972067268220e-01f},
    {7.958369046088836e-01f, -6.055110414043255e-01f},
    {7.928550330615741e-01f, -6.094102858903271e-01f},
    {7.898540571446090e-01f, -6.132948462299359e-01f},
    {7.868340491684999e-01f, -6.171646288220856e-01f},
    {7.837950819023488e-01f, -6.210195404217892e-01f},
    {7.807372285720945e-01f, -6.248594881423863e-01f},
    {7.776605628587479e-01f, -6.286843794577813e-01f},
    {7.745651588966166e-01f, -6.324941222046724e-01f},
    {7.714510912715192e-01f, -6.362886245847729e-01f},
    {7.683184350189877e-01f, -6.400677951670226e-01f},
    {7.651672656224590e-01f, -6.438315428897914e-01f},
    {7.619976590114568e-01f, -6.475797770630733e-01f},
    {7.588096915597616e-01f, -6.513124073706714e-01f},
    {7.556034400835709e-01f, -6.550293438723744e-01f},
    {7.523789818396478e-01f, -6.587304970061237e-01f},
    {7.491363945234594e-01f, -6.624157775901718e-01f},
    {7.458757562673048e-01f, -6.660850968252301e-01f},
    {7.425971456384329e-01f, -6.697383662966099e-01f},
    {7.393006416371488e-01f, -6.733754979763520e-01f},
    {7.359863236949099e-01f, -6.769964042253483e-01f},
    {7.326542716724128e-01f, -6.806009977954530e-01f},
    {7.293045658576685e-01f, -6.841891918315852e-01f},
    {7.259372869640676e-01f, -6.877608998738217e-01f},
    {7.225525161284360e-01f, -6.913160358594803e-01f},
    {7.191503349090794e-01f, -6.948545141251936e-01f},
    {7.157308252838186e-01f, -6.983762494089729e-01f},
    {7.122940696480137e-01f, -7.018811568522627e-01f},
    {7.088401508125785e-01f, -7.053691520019861e-01f}
};

static const cos_msin_t cos_msin_320[320] =
{
    {9.999992470090361e-01f, -1.227184322288852e-03f},
    {9.999932230881285e-01f, -3.681545574399692e-03f},
    {9.999811752826011e-01f, -6.135884649154475e-03f},
    {9.999631036650289e-01f, -8.590186761797602e-03f},
    {9.999390083442741e-01f, -1.104443712779613e-02f},
    {9.999088894654848e-01f, -1.349862096292883e-02f},
    {9.998727472100952e-01f, -1.595272348337527e-02f},
    {9.998305817958234e-01f, -1.840672990580482e-02f},
    {9.997823934766707e-01f, -2.086062544746576e-02f},
    {9.997281825429201e-01f, -2.331439532627430e-02f},
    {9.996679493211340e-01f, -2.576802476090363e-02f},
    {9.996016941741530e-01f, -2.822149897087298e-02f},
    {9.995294175010931e-01f, -3.067480317663663e-02f},
    {9.994511197373437e-01f, -3.312792259967294e-02f},
    {9.993668013545645e-01f, -3.558084246257342e-02f},
    {9.992764628606833e-01f, -3.803354798913168e-02f},
    {9.991801047998923e-01f, -4.048602440443251e-02f},
    {9.990777277526454e-01f, -4.293825693494082e-02f},
    {9.989693323356542e-01f, -4.539023080859068e-02f},
    {9.988549192018848e-01f, -4.784193125487429e-02f},
    {9.987344890405533e-01f, -5.029334350493095e-02f},
    {9.986080425771219e-01f, -5.274445279163603e-02f},
    {9.984755805732948e-01f, -5.519524434968993e-02f},
    {9.983371038270131e-01f, -5.764570341570704e-02f},
    {9.981926131724506e-01f, -6.009581522830464e-02f},
    {9.980421094800079e-01f, -6.254556502819182e-02f},
    {9.978855936563085e-01f, -6.499493805825848e-02f},
    {9.977230666441916e-01f, -6.744391956366405e-02f},
    {9.975545294227081e-01f, -6.989249479192657e-02f},
    {9.973799830071135e-01f, -7.234064899301137e-02f},
    {9.971994284488623e-01f, -7.478836741942015e-02f},
    {9.970128668356021e-01f, -7.723563532627951e-02f},
    {9.968202992911657e-01f, -7.968243797143013e-02f},
    {9.966217269755658e-01f, -8.212876061551522e-02f},
    {9.964171510849874e-01f, -8.457458852206962e-02f},
    {9.962065728517802e-01f, -8.701990695760831e-02f},
    {9.959899935444517e-01f, -8.946470119171543e-02f},
    {9.957674144676598e-01f, -9.190895649713272e-02f},
    {9.955388369622040e-01f, -9.435265814984850e-02f},
    {9.953042624050182e-01f, -9.679579142918618e-02f},
    {9.950636922091622e-01f, -9.923834161789306e-02f},
    {9.948171278238128e-01f, -1.016802940022289e-01f},
    {9.945645707342554e-01f, -1.041216338720546e-01f},
    {9.943060224618753e-01f, -1.065623465209208e-01f},
    {9.940414845641478e-01f, -1.090024172461564e-01f},
    {9.937709586346295e-01f, -1.114418313489574e-01f},
    {9.934944463029486e-01f, -1.138805741344751e-01f},
    {9.932119492347945e-01f, -1.163186309119048e-01f},
    {9.929234691319088e-01f, -1.187559869945741e-01f},
    {9.926290077320739e-01f, -1.211926277000318e-01f},
    {9.923285668091033e-01f, -1.236285383501360e-01f},
    {9.920221481728309e-01f, -1.260637042711424e-01f},
    {9.917097536690995e-01f, -1.284981107937932e-01f},
    {9.913913851797506e-01f, -1.309317432534049e-01f},
    {9.910670446226119e-01f, -1.333645869899571e-01f},
    {9.907367339514870e-01f, -1.357966273481804e-01f},
    {9.904004551561425e-01f, -1.382278496776452e-01f},
    {9.900582102622971e-01f, -1.406582393328492e-01f},
    {9.897100013316084e-01f, -1.430877816733065e-01f},
    {9.893558304616609e-01f, -1.455164620636352e-01f},
    {9.889956997859536e-01f, -1.479442658736455e-01f},
    {9.886296114738869e-01f, -1.503711784784285e-01f},
    {9.882575677307495e-01f, -1.527971852584434e-01f},
    {9.878795707977051e-01f, -1.552222715996064e-01f},
    {9.874956229517791e-01f, -1.576464228933781e-01f},
    {9.871057265058446e-01f, -1.600696245368518e-01f},
    {9.867098838086088e-01f, -1.624918619328416e-01f},
    {9.863080972445987e-01f, -1.649131204899699e-01f},
    {9.859003692341464e-01f, -1.673333856227558e-01f},
    {9.854867022333751e-01f, -1.697526427517024e-01f},
    {9.850670987341841e-01f, -1.721708773033852e-01f},
    {9.846415612642334e-01f, -1.745880747105397e-01f},
    {9.842100923869290e-01f, -1.770042204121487e-01f},
    {9.837726947014075e-01f, -1.794192998535309e-01f},
    {9.833293708425197e-01f, -1.818332984864276e-01f},
    {9.828801234808157e-01f, -1.842462017690910e-01f},
    {9.824249553225278e-01f, -1.866579951663718e-01f},
    {9.819638691095552e-01f, -1.890686641498062e-01f},
    {9.814968676194470e-01f, -1.914781941977041e-01f},
    {9.810239536653852e-01f, -1.938865707952361e-01f},
    {9.805451300961683e-01f, -1.962937794345212e-01f},
    {9.800603997961936e-01f, -1.986998056147138e-01f},
    {9.795697656854405e-01f, -2.011046348420919e-01f},
    {9.790732307194523e-01f, -2.035082526301433e-01f},
    {9.785707978893183e-01f, -2.059106444996538e-01f},
    {9.780624702216568e-01f, -2.083117959787937e-01f},
    {9.775482507785956e-01f, -2.107116926032057e-01f},
    {9.770281426577544e-01f, -2.131103199160914e-01f},
    {9.765021489922255e-01f, -2.155076634682986e-01f},
    {9.759702729505557e-01f, -2.179037088184086e-01f},
    {9.754325177367266e-01f, -2.202984415328229e-01f},
    {9.748888865901355e-01f, -2.226918471858500e-01f},
    {9.743393827855759e-01f, -2.250839113597928e-01f},
    {9.737840096332177e-01f, -2.274746196450351e-01f},
    {9.732227704785874e-01f, -2.298639576401283e-01f},
    {9.726556687025479e-01f, -2.322519109518786e-01f},
    {9.720827077212779e-01f, -2.346384651954331e-01f},
    {9.715038909862518e-01f, -2.370236059943672e-01f},
    {9.709192219842182e-01f, -2.394073189807704e-01f},
    {9.703287042371799e-01f, -2.417895897953334e-01f},
    {9.697323413023714e-01f, -2.441704040874346e-01f},
    {9.691301367722388e-01f, -2.465497475152259e-01f},
    {9.685220942744174e-01f, -2.489276057457201e-01f},
    {9.679082174717095e-01f, -2.513039644548766e-01f},
    {9.672885100620635e-01f, -2.536788093276874e-01f},
    {9.666629757785506e-01f, -2.560521260582643e-01f},
    {9.660316183893426e-01f, -2.584239003499241e-01f},
    {9.653944416976894e-01f, -2.607941179152755e-01f},
    {9.647514495418958e-01f, -2.631627644763044e-01f},
    {9.641026457952987e-01f, -2.655298257644607e-01f},
    {9.634480343662435e-01f, -2.678952875207434e-01f},
    {9.627876191980606e-01f, -2.702591354957875e-01f},
    {9.621214042690416e-01f, -2.726213554499490e-01f},
    {9.614493935924158e-01f, -2.749819331533909e-01f},
    {9.607715912163253e-01f, -2.773408543861692e-01f},
    {9.600880012238011e-01f, -2.796981049383182e-01f},
    {9.593986277327383e-01f, -2.820536706099365e-01f},
    {9.587034748958716e-01f, -2.844075372112719e-01f},
    {9.580025469007496e-01f, -2.867596905628075e-01f},
    {9.572958479697103e-01f, -2.891101164953470e-01f},
    {9.565833823598556e-01f, -2.914588008500998e-01f},
    {9.558651543630251e-01f, -2.938057294787664e-01f},
    {9.551411683057708e-01f, -2.961508882436238e-01f},
    {9.544114285493304e-01f, -2.984942630176104e-01f},
    {9.536759394896021e-01f, -3.008358396844112e-01f},
    {9.529347055571170e-01f, -3.031756041385431e-01f},
    {9.521877312170133e-01f, -3.055135422854393e-01f},
    {9.514350209690083e-01f, -3.078496400415349e-01f},
    {9.506765793473728e-01f, -3.101838833343510e-01f},
    {9.499124109209025e-01f, -3.125162581025802e-01f},
    {9.491425202928909e-01f, -3.148467502961706e-01f},
    {9.483669121011018e-01f, -3.171753458764112e-01f},
    {9.475855910177411e-01f, -3.195020308160157e-01f},
    {9.467985617494289e-01f, -3.218267910992075e-01f},
    {9.460058290371707e-01f, -3.241496127218040e-01f},
    {9.452073976563291e-01f, -3.264704816913009e-01f},
    {9.444032724165956e-01f, -3.287893840269567e-01f},
    {9.435934581619604e-01f, -3.311063057598764e-01f},
    {9.427779597706842e-01f, -3.334212329330963e-01f},
    {9.419567821552687e-01f, -3.357341516016679e-01f},
    {9.411299302624264e-01f, -3.380450478327413e-01f},
    {9.402974090730516e-01f, -3.403539077056500e-01f},
    {9.394592236021899e-01f, -3.426607173119944e-01f},
    {9.386153788990080e-01f, -3.449654627557252e-01f},
    {9.377658800467635e-01f, -3.472681301532278e-01f},
    {9.369107321627741e-01f, -3.495687056334055e-01f},
    {9.360499403983871e-01f, -3.518671753377630e-01f},
    {9.351835099389476e-01f, -3.541635254204903e-01f},
    {9.343114460037683e-01f, -3.564577420485457e-01f},
    {9.334337538460973e-01f, -3.587498114017393e-01f},
    {9.325504387530866e-01f, -3.610397196728160e-01f},
    {9.316615060457607e-01f, -3.633274530675394e-01f},
    {9.307669610789837e-01f, -3.656129978047739e-01f},
    {9.298668092414279e-01f, -3.678963401165684e-01f},
    {9.289610559555410e-01f, -3.701774662482391e-01f},
    {9.280497066775131e-01f, -3.724563624584523e-01f},
    {9.271327668972442e-01f, -3.747330150193071e-01f},
    {9.262102421383114e-01f, -3.770074102164183e-01f},
    {9.252821379579349e-01f, -3.792795343489985e-01f},
    {9.243484599469451e-01f, -3.815493737299417e-01f},
    {9.234092137297489e-01f, -3.838169146859046e-01f},
    {9.224644049642953e-01f, -3.860821435573893e-01f},
    {9.215140393420420e-01f, -3.883450466988262e-01f},
    {9.205581225879205e-01f, -3.906056104786556e-01f},
    {9.195966604603021e-01f, -3.928638212794095e-01f},
    {9.186296587509630e-01f, -3.951196654977946e-01f},
    {9.176571232850496e-01f, -3.973731295447735e-01f},
    {9.166790599210427e-01f, -3.996241998456468e-01f},
    {9.156954745507232e-01f, -4.018728628401348e-01f},
    {9.147063730991362e-01f, -4.041191049824593e-01f},
    {9.137117615245548e-01f, -4.063629127414251e-01f},
    {9.127116458184452e-01f, -4.086042726005015e-01f},
    {9.117060320054299e-01f, -4.108431710579039e-01f},
    {9.106949261432513e-01f, -4.130795946266749e-01f},
    {9.096783343227359e-01f, -4.153135298347656e-01f},
    {9.086562626677570e-01f, -4.175449632251170e-01f},
    {9.076287173351980e-01f, -4.197738813557405e-01f},
    {9.065957045149153e-01f, -4.220002707997997e-01f},
    {9.055572304297014e-01f, -4.242241181456904e-01f},
    {9.045133013352465e-01f, -4.264454099971220e-01f},
    {9.034639235201017e-01f, -4.286641329731982e-01f},
    {9.024091033056408e-01f, -4.308802737084970e-01f},
    {9.013488470460220e-01f, -4.330938188531520e-01f},
    {9.002831611281501e-01f, -4.353047550729321e-01f},
    {8.992120519716374e-01f, -4.375130690493225e-01f},
    {8.981355260287659e-01f, -4.397187474796043e-01f},
    {8.970535897844474e-01f, -4.419217770769352e-01f},
    {8.959662497561852e-01f, -4.441221445704292e-01f},
    {8.948735124940346e-01f, -4.463198367052365e-01f},
    {8.937753845805634e-01f, -4.485148402426236e-01f},
    {8.926718726308122e-01f, -4.507071419600526e-01f},
    {8.915629832922548e-01f, -4.528967286512617e-01f},
    {8.904487232447579e-01f, -4.550835871263438e-01f},
    {8.893290992005409e-01f, -4.572677042118265e-01f},
    {8.882041179041357e-01f, -4.594490667507513e-01f},
    {8.870737861323454e-01f, -4.616276616027529e-01f},
    {8.859381106942048e-01f, -4.638034756441384e-01f},
    {8.847970984309378e-01f, -4.659764957679662e-01f},
    {8.836507562159172e-01f, -4.681467088841250e-01f},
    {8.824990909546231e-01f, -4.703141019194129e-01f},
    {8.813421095846011e-01f, -4.724786618176158e-01f},
    {8.801798190754208e-01f, -4.746403755395864e-01f},
    {8.790122264286335e-01f, -4.767992300633221e-01f},
    {8.778393386777302e-01f, -4.789552123840445e-01f},
    {8.766611628880995e-01f, -4.811083095142767e-01f},
    {8.754777061569843e-01f, -4.832585084839222e-01f},
    {8.742889756134398e-01f, -4.854057963403425e-01f},
    {8.730949784182901e-01f, -4.875501601484360e-01f},
    {8.718957217640854e-01f, -4.896915869907146e-01f},
    {8.706912128750582e-01f, -4.918300639673830e-01f},
    {8.694814590070804e-01f, -4.939655781964152e-01f},
    {8.682664674476190e-01f, -4.960981168136327e-01f},
    {8.670462455156926e-01f, -4.982276669727819e-01f},
    {8.658208005618273e-01f, -5.003542158456112e-01f},
    {8.645901399680118e-01f, -5.024777506219491e-01f},
    {8.633542711476541e-01f, -5.045982585097801e-01f},
    {8.621132015455357e-01f, -5.067157267353229e-01f},
    {8.608669386377673e-01f, -5.088301425431070e-01f},
    {8.596154899317437e-01f, -5.109414931960489e-01f},
    {8.583588629660989e-01f, -5.130497659755299e-01f},
    {8.570970653106597e-01f, -5.151549481814718e-01f},
    {8.558301045664012e-01f, -5.172570271324139e-01f},
    {8.545579883654005e-01f, -5.193559901655896e-01f},
    {8.532807243707908e-01f, -5.214518246370019e-01f},
    {8.519983202767152e-01f, -5.235445179215000e-01f},
    {8.507107838082801e-01f, -5.256340574128560e-01f},
    {8.494181227215095e-01f, -5.277204305238395e-01f},
    {8.481203448032972e-01f, -5.298036246862946e-01f},
    {8.468174578713608e-01f, -5.318836273512150e-01f},
    {8.455094697741939e-01f, -5.339604259888194e-01f},
    {8.441963883910193e-01f, -5.360340080886280e-01f},
    {8.428782216317413e-01f, -5.381043611595366e-01f},
    {8.415549774368984e-01f, -5.401714727298929e-01f},
    {8.402266637776148e-01f, -5.422353303475707e-01f},
    {8.388932886555529e-01f, -5.442959215800456e-01f},
    {8.375548601028652e-01f, -5.463532340144698e-01f},
    {8.362113861821453e-01f, -5.484072552577465e-01f},
    {8.348628749863800e-01f, -5.504579729366048e-01f},
    {8.335093346389004e-01f, -5.525053746976744e-01f},
    {8.321507732933324e-01f, -5.545494482075597e-01f},
    {8.307871991335484e-01f, -5.565901811529141e-01f},
    {8.294186203736174e-01f, -5.586275612405148e-01f},
    {8.280450452577558e-01f, -5.606615761973360e-01f},
    {8.266664820602777e-01f, -5.626922137706231e-01f},
    {8.252829390855451e-01f, -5.647194617279668e-01f},
    {8.238944246679176e-01f, -5.667433078573766e-01f},
    {8.225009471717026e-01f, -5.687637399673542e-01f},
    {8.211025149911046e-01f, -5.707807458869673e-01f},
    {8.196991365501750e-01f, -5.727943134659226e-01f},
    {8.182908203027607e-01f, -5.748044305746390e-01f},
    {8.168775747324537e-01f, -5.768110851043212e-01f},
    {8.154594083525400e-01f, -5.788142649670318e-01f},
    {8.140363297059484e-01f, -5.808139580957645e-01f},
    {8.126083473651983e-01f, -5.828101524445172e-01f},
    {8.111754699323488e-01f, -5.848028359883638e-01f},
    {8.097377060389469e-01f, -5.867919967235272e-01f},
    {8.082950643459751e-01f, -5.887776226674516e-01f},
    {8.068475535437993e-01f, -5.907597018588742e-01f},
    {8.053951823521167e-01f, -5.927382223578977e-01f},
    {8.039379595199031e-01f, -5.947131722460625e-01f},
    {8.024758938253601e-01f, -5.966845396264172e-01f},
    {8.010089940758625e-01f, -5.986523126235920e-01f},
    {7.995372691079050e-01f, -6.006164793838690e-01f},
    {7.980607277870492e-01f, -6.025770280752539e-01f},
    {7.965793790078698e-01f, -6.045339468875478e-01f},
    {7.950932316939014e-01f, -6.064872240324176e-01f},
    {7.936022947975847e-01f, -6.084368477434675e-01f},
    {7.921065773002124e-01f, -6.103828062763095e-01f},
    {7.906060882118751e-01f, -6.123250879086344e-01f},
    {7.891008365714072e-01f, -6.142636809402826e-01f},
    {7.875908314463325e-01f, -6.161985736933142e-01f},
    {7.860760819328091e-01f, -6.181297545120795e-01f},
    {7.845565971555752e-01f, -6.200572117632891e-01f},
    {7.830323862678940e-01f, -6.219809338360844e-01f},
    {7.815034584514979e-01f, -6.239009091421072e-01f},
    {7.799698229165344e-01f, -6.258171261155689e-01f},
    {7.784314889015095e-01f, -6.277295732133219e-01f},
    {7.768884656732324e-01f, -6.296382389149270e-01f},
    {7.753407625267603e-01f, -6.315431117227246e-01f},
    {7.737883887853415e-01f, -6.334441801619028e-01f},
    {7.722313538003597e-01f, -6.353414327805670e-01f},
    {7.706696669512773e-01f, -6.372348581498091e-01f},
    {7.691033376455797e-01f, -6.391244448637757e-01f},
    {7.675323753187178e-01f, -6.410101815397373e-01f},
    {7.659567894340514e-01f, -6.428920568181569e-01f},
    {7.643765894827926e-01f, -6.447700593627579e-01f},
    {7.627917849839481e-01f, -6.466441778605931e-01f},
    {7.612023854842618e-01f, -6.485144010221124e-01f},
    {7.596084005581580e-01f, -6.503807175812309e-01f},
    {7.580098398076831e-01f, -6.522431162953969e-01f},
    {7.564067128624476e-01f, -6.541015859456593e-01f},
    {7.547990293795690e-01f, -6.559561153367355e-01f},
    {7.531867990436125e-01f, -6.578066932970786e-01f},
    {7.515700315665336e-01f, -6.596533086789452e-01f},
    {7.499487366876190e-01f, -6.614959503584616e-01f},
    {7.483229241734281e-01f, -6.633346072356920e-01f},
    {7.466926038177344e-01f, -6.651692682347043e-01f},
    {7.450577854414661e-01f, -6.669999223036375e-01f},
    {7.434184788926470e-01f, -6.688265584147679e-01f},
    {7.417746940463380e-01f, -6.706491655645758e-01f},
    {7.401264408045760e-01f, -6.724677327738116e-01f},
    {7.384737290963160e-01f, -6.742822490875620e-01f},
    {7.368165688773699e-01f, -6.760927035753159e-01f},
    {7.351549701303474e-01f, -6.778990853310308e-01f},
    {7.334889428645953e-01f, -6.797013834731973e-01f},
    {7.318184971161379e-01f, -6.814995871449060e-01f},
    {7.301436429476156e-01f, -6.832936855139119e-01f},
    {7.284643904482252e-01f, -6.850836677727004e-01f},
    {7.267807497336585e-01f, -6.868695231385515e-01f},
    {7.250927309460417e-01f, -6.886512408536060e-01f},
    {7.234003442538740e-01f, -6.904288101849290e-01f},
    {7.217035998519666e-01f, -6.922022204245754e-01f},
    {7.200025079613817e-01f, -6.939714608896540e-01f},
    {7.182970788293696e-01f, -6.957365209223924e-01f},
    {7.165873227293083e-01f, -6.974973898902004e-01f},
    {7.148732499606411e-01f, -6.992540571857347e-01f},
    {7.131548708488146e-01f, -7.010065122269625e-01f},
    {7.114321957452164e-01f, -7.027547444572253e-01f},
    {7.097052350271130e-01f, -7.044987433453024e-01f},
    {7.079739990975870e-01f, -7.062384983854745e-01f}
};

static const cos_msin_t cos_msin_640[640] =
{
    {9.999998117522413e-01f, -6.135922766517967e-04f},
    {9.999983057705969e-01f, -1.840775905896510e-03f},
    {9.999952938095762e-01f, -3.067956762965976e-03f},
    {9.999907758737150e-01f, -4.295132999748002e-03f},
    {9.999847519698173e-01f, -5.522302768137352e-03f},
    {9.999772221069551e-01f, -6.749464220038533e-03f},
    {9.999681862964679e-01f, -7.976615507368575e-03f},
    {9.999576445519639e-01f, -9.203754782059819e-03f},
    {9.999455968893185e-01f, -1.043088019606269e-02f},
    {9.999320433266753e-01f, -1.165798990134850e-02f},
    {9.999169838844458e-01f, -1.288508204991220e-02f},
    {9.999004185853092e-01f, -1.411215479377519e-02f},
    {9.998823474542126e-01f, -1.533920628498810e-02f},
    {9.998627705183706e-01f, -1.656623467563356e-02f},
    {9.998416878072659e-01f, -1.779323811782898e-02f},
    {9.998190993526487e-01f, -1.902021476372936e-02f},
    {9.997950051885367e-01f, -2.024716276553004e-02f},
    {9.997694053512153e-01f, -2.147408027546951e-02f},
    {9.997422998792375e-01f, -2.270096544583216e-02f},
    {9.997136888134235e-01f, -2.392781642895110e-02f},
    {9.996835721968610e-01f, -2.515463137721094e-02f},
    {9.996519500749053e-01f, -2.638140844305051e-02f},
    {9.996188224951786e-01f, -2.760814577896574e-02f},
    {9.995841895075704e-01f, -2.883484153751236e-02f},
    {9.995480511642375e-01f, -3.006149387130874e-02f},
    {9.995104075196035e-01f, -3.128810093303862e-02f},
    {9.994712586303591e-01f, -3.251466087545394e-02f},
    {9.994306045554617e-01f, -3.374117185137758e-02f},
    {9.993884453561358e-01f, -3.496763201370620e-02f},
    {9.993447810958722e-01f, -3.619403951541294e-02f},
    {9.992996118404286e-01f, -3.742039250955028e-02f},
    {9.992529376578290e-01f, -3.864668914925275e-02f},
    {9.992047586183639e-01f, -3.987292758773981e-02f},
    {9.991550747945901e-01f, -4.109910597831850e-02f},
    {9.991038862613305e-01f, -4.232522247438635e-02f},
    {9.990511930956741e-01f, -4.355127522943403e-02f},
    {9.989969953769761e-01f, -4.477726239704831e-02f},
    {9.989412931868569e-01f, -4.600318213091462e-02f},
    {9.988840866092031e-01f, -4.722903258482004e-02f},
    {9.988253757301669e-01f, -4.845481191265589e-02f},
    {9.987651606381658e-01f, -4.968051826842070e-02f},
    {9.987034414238826e-01f, -5.090614980622282e-02f},
    {9.986402181802653e-01f, -5.213170468028332e-02f},
    {9.985754910025268e-01f, -5.335718104493870e-02f},
    {9.985092599881454e-01f, -5.458257705464371e-02f},
    {9.984415252368637e-01f, -5.580789086397409e-02f},
    {9.983722868506889e-01f, -5.703312062762941e-02f},
    {9.983015449338929e-01f, -5.825826450043575e-02f},
    {9.982292995930115e-01f, -5.948332063734863e-02f},
    {9.981555509368452e-01f, -6.070828719345561e-02f},
    {9.980802990764579e-01f, -6.193316232397920e-02f},
    {9.980035441251777e-01f, -6.315794418427960e-02f},
    {9.979252861985960e-01f, -6.438263092985747e-02f},
    {9.978455254145679e-01f, -6.560722071635666e-02f},
    {9.977642618932119e-01f, -6.683171169956714e-02f},
    {9.976814957569091e-01f, -6.805610203542757e-02f},
    {9.975972271303040e-01f, -6.928038988002828e-02f},
    {9.975114561403035e-01f, -7.050457338961386e-02f},
    {9.974241829160772e-01f, -7.172865072058610e-02f},
    {9.973354075890570e-01f, -7.295262002950662e-02f},
    {9.972451302929369e-01f, -7.417647947309980e-02f},
    {9.971533511636731e-01f, -7.540022720825540e-02f},
    {9.970600703394830e-01f, -7.662386139203149e-02f},
    {9.969652879608459e-01f, -7.784738018165707e-02f},
    {9.968690041705026e-01f, -7.907078173453497e-02f},
    {9.967712191134545e-01f, -8.029406420824454e-02f},
    {9.966719329369642e-01f, -8.151722576054453e-02f},
    {9.965711457905548e-01f, -8.274026454937569e-02f},
    {9.964688578260101e-01f, -8.396317873286374e-02f},
    {9.963650691973739e-01f, -8.518596646932200e-02f},
    {9.962597800609497e-01f, -8.640862591725426e-02f},
    {9.961529905753015e-01f, -8.763115523535747e-02f},
    {9.960447009012520e-01f, -8.885355258252460e-02f},
    {9.959349112018836e-01f, -9.007581611784729e-02f},
    {9.958236216425376e-01f, -9.129794400061877e-02f},
    {9.957108323908140e-01f, -9.251993439033654e-02f},
    {9.955965436165716e-01f, -9.374178544670515e-02f},
    {9.954807554919269e-01f, -9.496349532963899e-02f},
    {9.953634681912550e-01f, -9.618506219926506e-02f},
    {9.952446818911883e-01f, -9.740648421592572e-02f},
    {9.951243967706169e-01f, -9.862775954018151e-02f},
    {9.950026130106879e-01f, -9.984888633281383e-02f},
    {9.948793307948056e-01f, -1.010698627548278e-01f},
    {9.947545503086307e-01f, -1.022906869674551e-01f},
    {9.946282717400804e-01f, -1.035113571321563e-01f},
    {9.945004952793278e-01f, -1.047318714106244e-01f},
    {9.943712211188022e-01f, -1.059522279647869e-01f},
    {9.942404494531879e-01f, -1.071724249568088e-01f},
    {9.941081804794248e-01f, -1.083924605490956e-01f},
    {9.939744143967076e-01f, -1.096123329042957e-01f},
    {9.938391514064855e-01f, -1.108320401853034e-01f},
    {9.937023917124622e-01f, -1.120515805552615e-01f},
    {9.935641355205953e-01f, -1.132709521775643e-01f},
    {9.934243830390962e-01f, -1.144901532158602e-01f},
    {9.932831344784294e-01f, -1.157091818340545e-01f},
    {9.931403900513129e-01f, -1.169280361963119e-01f},
    {9.929961499727171e-01f, -1.181467144670601e-01f},
    {9.928504144598651e-01f, -1.193652148109914e-01f},
    {9.927031837322318e-01f, -1.205835353930663e-01f},
    {9.925544580115441e-01f, -1.218016743785162e-01f},
    {9.924042375217801e-01f, -1.230196299328457e-01f},
    {9.922525224891693e-01f, -1.242374002218357e-01f},
    {9.920993131421918e-01f, -1.254549834115462e-01f},
    {9.919446097115779e-01f, -1.266723776683190e-01f},
    {9.917884124303086e-01f, -1.278895811587802e-01f},
    {9.916307215336136e-01f, -1.291065920498434e-01f},
    {9.914715372589731e-01f, -1.303234085087122e-01f},
    {9.913108598461154e-01f, -1.315400287028831e-01f},
    {9.911486895370180e-01f, -1.327564508001479e-01f},
    {9.909850265759061e-01f, -1.339726729685971e-01f},
    {9.908198712092535e-01f, -1.351886933766218e-01f},
    {9.906532236857811e-01f, -1.364045101929175e-01f},
    {9.904850842564571e-01f, -1.376201215864860e-01f},
    {9.903154531744962e-01f, -1.388355257266385e-01f},
    {9.901443306953601e-01f, -1.400507207829983e-01f},
    {9.899717170767560e-01f, -1.412657049255036e-01f},
    {9.897976125786367e-01f, -1.424804763244102e-01f},
    {9.896220174632009e-01f, -1.436950331502945e-01f},
    {9.894449319948911e-01f, -1.449093735740556e-01f},
    {9.892663564403953e-01f, -1.461234957669190e-01f},
    {9.890862910686448e-01f, -1.473373979004386e-01f},
    {9.889047361508148e-01f, -1.485510781464996e-01f},
    {9.887216919603238e-01f, -1.497645346773215e-01f},
    {9.885371587728330e-01f, -1.509777656654608e-01f},
    {9.883511368662461e-01f, -1.521907692838135e-01f},
    {9.881636265207087e-01f, -1.534035437056180e-01f},
    {9.879746280186079e-01f, -1.546160871044581e-01f},
    {9.877841416445722e-01f, -1.558283976542652e-01f},
    {9.875921676854704e-01f, -1.570404735293217e-01f},
    {9.873987064304122e-01f, -1.582523129042630e-01f},
    {9.872037581707463e-01f, -1.594639139540810e-01f},
    {9.870073232000616e-01f, -1.606752748541265e-01f},
    {9.868094018141855e-01f, -1.618863937801118e-01f},
    {9.866099943111839e-01f, -1.630972689081137e-01f},
    {9.864091009913611e-01f, -1.643078984145762e-01f},
    {9.862067221572588e-01f, -1.655182804763130e-01f},
    {9.860028581136556e-01f, -1.667284132705107e-01f},
    {9.857975091675675e-01f, -1.679382949747312e-01f},
    {9.855906756282459e-01f, -1.691479237669144e-01f},
    {9.853823578071785e-01f, -1.703572978253813e-01f},
    {9.851725560180883e-01f, -1.715664153288364e-01f},
    {9.849612705769328e-01f, -1.727752744563706e-01f},
    {9.847485018019042e-01f, -1.739838733874638e-01f},
    {9.845342500134284e-01f, -1.751922103019880e-01f},
    {9.843185155341647e-01f, -1.764002833802096e-01f},
    {9.841012986890054e-01f, -1.776080908027924e-01f},
    {9.838825998050751e-01f, -1.788156307508001e-01f},
    {9.836624192117303e-01f, -1.800229014056995e-01f},
    {9.834407572405590e-01f, -1.812299009493628e-01f},
    {9.832176142253802e-01f, -1.824366275640705e-01f},
    {9.829929905022433e-01f, -1.836430794325141e-01f},
    {9.827668864094273e-01f, -1.848492547377989e-01f},
    {9.825393022874412e-01f, -1.860551516634466e-01f},
    {9.823102384790224e-01f, -1.872607683933984e-01f},
    {9.820796953291370e-01f, -1.884661031120172e-01f},
    {9.818476731849786e-01f, -1.896711540040907e-01f},
    {9.816141723959685e-01f, -1.908759192548340e-01f},
    {9.813791933137546e-01f, -1.920803970498924e-01f},
    {9.811427362922112e-01f, -1.932845855753442e-01f},
    {9.809048016874382e-01f, -1.944884830177032e-01f},
    {9.806653898577611e-01f, -1.956920875639216e-01f},
    {9.804245011637294e-01f, -1.968953974013927e-01f},
    {9.801821359681174e-01f, -1.980984107179536e-01f},
    {9.799382946359226e-01f, -1.993011257018880e-01f},
    {9.796929775343657e-01f, -2.005035405419289e-01f},
    {9.794461850328897e-01f, -2.017056534272613e-01f},
    {9.791979175031598e-01f, -2.029074625475249e-01f},
    {9.789481753190622e-01f, -2.041089660928169e-01f},
    {9.786969588567044e-01f, -2.053101622536946e-01f},
    {9.784442684944136e-01f, -2.065110492211783e-01f},
    {9.781901046127370e-01f, -2.077116251867540e-01f},
    {9.779344675944409e-01f, -2.089118883423760e-01f},
    {9.776773578245099e-01f, -2.101118368804696e-01f},
    {9.774187756901469e-01f, -2.113114689939341e-01f},
    {9.771587215807717e-01f, -2.125107828761450e-01f},
    {9.768971958880210e-01f, -2.137097767209575e-01f},
    {9.766341990057480e-01f, -2.149084487227085e-01f},
    {9.763697313300211e-01f, -2.161067970762195e-01f},
    {9.761037932591240e-01f, -2.173048199767996e-01f},
    {9.758363851935545e-01f, -2.185025156202481e-01f},
    {9.755675075360243e-01f, -2.196998822028567e-01f},
    {9.752971606914583e-01f, -2.208969179214133e-01f},
    {9.750253450669941e-01f, -2.220936209732035e-01f},
    {9.747520610719810e-01f, -2.232899895560143e-01f},
    {9.744773091179798e-01f, -2.244860218681361e-01f},
    {9.742010896187618e-01f, -2.256817161083659e-01f},
    {9.739234029903089e-01f, -2.268770704760098e-01f},
    {9.736442496508120e-01f, -2.280720831708857e-01f},
    {9.733636300206708e-01f, -2.292667523933261e-01f},
    {9.730815445224936e-01f, -2.304610763441808e-01f},
    {9.727979935810960e-01f, -2.316550532248194e-01f},
    {9.725129776235006e-01f, -2.328486812371343e-01f},
    {9.722264970789363e-01f, -2.340419585835434e-01f},
    {9.719385523788376e-01f, -2.352348834669925e-01f},
    {9.716491439568440e-01f, -2.364274540909583e-01f},
    {9.713582722487994e-01f, -2.376196686594509e-01f},
    {9.710659376927513e-01f, -2.388115253770169e-01f},
    {9.707721407289504e-01f, -2.400030224487415e-01f},
    {9.704768817998493e-01f, -2.411941580802516e-01f},
    {9.701801613501028e-01f, -2.423849304777186e-01f},
    {9.698819798265667e-01f, -2.435753378478606e-01f},
    {9.695823376782966e-01f, -2.447653783979458e-01f},
    {9.692812353565485e-01f, -2.459550503357946e-01f},
    {9.689786733147769e-01f, -2.471443518697825e-01f},
    {9.686746520086348e-01f, -2.483332812088429e-01f},
    {9.683691718959728e-01f, -2.495218365624697e-01f},
    {9.680622334368384e-01f, -2.507100161407201e-01f},
    {9.677538370934755e-01f, -2.518978181542170e-01f},
    {9.674439833303232e-01f, -2.530852408141520e-01f},
    {9.671326726140158e-01f, -2.542722823322882e-01f},
    {9.668199054133816e-01f, -2.554589409209625e-01f},
    {9.665056821994423e-01f, -2.566452147930884e-01f},
    {9.661900034454125e-01f, -2.578311021621590e-01f},
    {9.658728696266987e-01f, -2.590166012422493e-01f},
    {9.655542812208985e-01f, -2.602017102480191e-01f},
    {9.652342387078005e-01f, -2.613864273947156e-01f},
    {9.649127425693828e-01f, -2.625707508981763e-01f},
    {9.645897932898128e-01f, -2.637546789748313e-01f},
    {9.642653913554462e-01f, -2.649382098417065e-01f},
    {9.639395372548267e-01f, -2.661213417164257e-01f},
    {9.636122314786845e-01f, -2.673040728172135e-01f},
    {9.632834745199362e-01f, -2.684864013628985e-01f},
    {9.629532668736839e-01f, -2.696683255729151e-01f},
    {9.626216090372143e-01f, -2.708498436673069e-01f},
    {9.622885015099981e-01f, -2.720309538667289e-01f},
    {9.619539447936892e-01f, -2.732116543924507e-01f},
    {9.616179393921240e-01f, -2.743919434663584e-01f},
    {9.612804858113206e-01f, -2.755718193109581e-01f},
    {9.609415845594780e-01f, -2.767512801493782e-01f},
    {9.606012361469752e-01f, -2.779303242053718e-01f},
    {9.602594410863711e-01f, -2.791089497033199e-01f},
    {9.599161998924024e-01f, -2.802871548682339e-01f},
    {9.595715130819845e-01f, -2.814649379257579e-01f},
    {9.592253811742094e-01f, -2.826422971021723e-01f},
    {9.588778046903456e-01f, -2.838192306243950e-01f},
    {9.585287841538368e-01f, -2.849957367199857e-01f},
    {9.581783200903017e-01f, -2.861718136171474e-01f},
    {9.578264130275329e-01f, -2.873474595447295e-01f},
    {9.574730634954960e-01f, -2.885226727322305e-01f},
    {9.571182720263292e-01f, -2.896974514098006e-01f},
    {9.567620391543418e-01f, -2.908717938082443e-01f},
    {9.564043654160141e-01f, -2.920456981590233e-01f},
    {9.560452513499964e-01f, -2.932191626942586e-01f},
    {9.556846974971080e-01f, -2.943921856467341e-01f},
    {9.553227044003364e-01f, -2.955647652498983e-01f},
    {9.549592726048367e-01f, -2.967368997378675e-01f},
    {9.545944026579306e-01f, -2.979085873454284e-01f},
    {9.542280951091057e-01f, -2.990798263080405e-01f},
    {9.538603505100144e-01f, -3.002506148618392e-01f},
    {9.534911694144735e-01f, -3.014209512436381e-01f},
    {9.531205523784633e-01f, -3.025908336909318e-01f},
    {9.527484999601259e-01f, -3.037602604418984e-01f},
    {9.523750127197659e-01f, -3.049292297354024e-01f},
    {9.520000912198481e-01f, -3.060977398109971e-01f},
    {9.516237360249976e-01f, -3.072657889089275e-01f},
    {9.512459477019986e-01f, -3.084333752701328e-01f},
    {9.508667268197933e-01f, -3.096004971362489e-01f},
    {9.504860739494817e-01f, -3.107671527496115e-01f},
    {9.501039896643201e-01f, -3.119333403532583e-01f},
    {9.497204745397203e-01f, -3.130990581909318e-01f},
    {9.493355291532494e-01f, -3.142643045070820e-01f},
    {9.489491540846281e-01f, -3.154290775468691e-01f},
    {9.485613499157303e-01f, -3.165933755561658e-01f},
    {9.481721172305820e-01f, -3.177571967815606e-01f},
    {9.477814566153607e-01f, -3.189205394703594e-01f},
    {9.473893686583942e-01f, -3.200834018705895e-01f},
    {9.469958539501598e-01f, -3.212457822310009e-01f},
    {9.466009130832835e-01f, -3.224076788010699e-01f},
    {9.462045466525394e-01f, -3.235690898310011e-01f},
    {9.458067552548478e-01f, -3.247300135717307e-01f},
    {9.454075394892756e-01f, -3.258904482749284e-01f},
    {9.450068999570345e-01f, -3.270503921930005e-01f},
    {9.446048372614803e-01f, -3.282098435790925e-01f},
    {9.442013520081122e-01f, -3.293688006870915e-01f},
    {9.437964448045717e-01f, -3.305272617716291e-01f},
    {9.433901162606417e-01f, -3.316852250880838e-01f},
    {9.429823669882458e-01f, -3.328426888925837e-01f},
    {9.425731976014469e-01f, -3.339996514420094e-01f},
    {9.421626087164466e-01f, -3.351561109939961e-01f},
    {9.417506009515846e-01f, -3.363120658069366e-01f},
    {9.413371749273369e-01f, -3.374675141399838e-01f},
    {9.409223312663159e-01f, -3.386224542530535e-01f},
    {9.405060705932683e-01f, -3.397768844068269e-01f},
    {9.400883935350755e-01f, -3.409308028627527e-01f},
    {9.396693007207513e-01f, -3.420842078830508e-01f},
    {9.392487927814420e-01f, -3.432370977307140e-01f},
    {9.388268703504251e-01f, -3.443894706695110e-01f},
    {9.384035340631081e-01f, -3.455413249639891e-01f},
    {9.379787845570278e-01f, -3.466926588794764e-01f},
    {9.375526224718491e-01f, -3.478434706820849e-01f},
    {9.371250484493645e-01f, -3.489937586387129e-01f},
    {9.366960631334929e-01f, -3.501435210170474e-01f},
    {9.362656671702783e-01f, -3.512927560855671e-01f},
    {9.358338612078891e-01f, -3.524414621135448e-01f},
    {9.354006458966176e-01f, -3.535896373710499e-01f},
    {9.349660218888781e-01f, -3.547372801289512e-01f},
    {9.345299898392064e-01f, -3.558843886589194e-01f},
    {9.340925504042590e-01f, -3.570309612334300e-01f},
    {9.336537042428116e-01f, -3.581769961257653e-01f},
    {9.332134520157588e-01f, -3.593224916100174e-01f},
    {9.327717943861125e-01f, -3.604674459610909e-01f},
    {9.323287320190009e-01f, -3.616118574547051e-01f},
    {9.318842655816681e-01f, -3.627557243673972e-01f},
    {9.314383957434725e-01f, -3.638990449765241e-01f},
    {9.309911231758859e-01f, -3.650418175602657e-01f},
    {9.305424485524929e-01f, -3.661840403976272e-01f},
    {9.300923725489892e-01f, -3.673257117684415e-01f},
    {9.296408958431813e-01f, -3.684668299533723e-01f},
    {9.291880191149847e-01f, -3.696073932339162e-01f},
    {9.287337430464239e-01f, -3.707473998924054e-01f},
    {9.282780683216301e-01f, -3.718868482120106e-01f},
    {9.278209956268415e-01f, -3.730257364767432e-01f},
    {9.273625256504011e-01f, -3.741640629714579e-01f},
    {9.269026590827565e-01f, -3.753018259818559e-01f},
    {9.264413966164585e-01f, -3.764390237944864e-01f},
    {9.259787389461599e-01f, -3.775756546967501e-01f},
    {9.255146867686148e-01f, -3.787117169769015e-01f},
    {9.250492407826776e-01f, -3.798472089240512e-01f},
    {9.245824016893013e-01f, -3.809821288281689e-01f},
    {9.241141701915373e-01f, -3.821164749800858e-01f},
    {9.236445469945337e-01f, -3.832502456714969e-01f},
    {9.231735328055345e-01f, -3.843834391949643e-01f},
    {9.227011283338786e-01f, -3.855160538439188e-01f},
    {9.222273342909986e-01f, -3.866480879126634e-01f},
    {9.217521513904198e-01f, -3.877795396963752e-01f},
    {9.212755803477590e-01f, -3.889104074911081e-01f},
    {9.207976218807237e-01f, -3.900406895937958e-01f},
    {9.203182767091106e-01f, -3.911703843022539e-01f},
    {9.198375455548048e-01f, -3.922994899151824e-01f},
    {9.193554291417789e-01f, -3.934280047321689e-01f},
    {9.188719281960914e-01f, -3.945559270536903e-01f},
    {9.183870434458861e-01f, -3.956832551811160e-01f},
    {9.179007756213905e-01f, -3.968099874167103e-01f},
    {9.174131254549152e-01f, -3.979361220636348e-01f},
    {9.169240936808526e-01f, -3.990616574259509e-01f},
    {9.164336810356757e-01f, -4.001865918086229e-01f},
    {9.159418882579371e-01f, -4.013109235175197e-01f},
    {9.154487160882678e-01f, -4.024346508594184e-01f},
    {9.149541652693762e-01f, -4.035577721420057e-01f},
    {9.144582365460469e-01f, -4.046802856738814e-01f},
    {9.139609306651395e-01f, -4.058021897645602e-01f},
    {9.134622483755878e-01f, -4.069234827244749e-01f},
    {9.129621904283982e-01f, -4.080441628649787e-01f},
    {9.124607575766490e-01f, -4.091642284983474e-01f},
    {9.119579505754890e-01f, -4.102836779377824e-01f},
    {9.114537701821365e-01f, -4.114025094974132e-01f},
    {9.109482171558779e-01f, -4.125207214922996e-01f},
    {9.104412922580672e-01f, -4.136383122384345e-01f},
    {9.099329962521239e-01f, -4.147552800527466e-01f},
    {9.094233299035327e-01f, -4.158716232531024e-01f},
    {9.089122939798419e-01f, -4.169873401583093e-01f},
    {9.083998892506623e-01f, -4.181024290881177e-01f},
    {9.078861164876663e-01f, -4.192168883632239e-01f},
    {9.073709764645862e-01f, -4.203307163052724e-01f},
    {9.068544699572136e-01f, -4.214439112368585e-01f},
    {9.063365977433983e-01f, -4.225564714815306e-01f},
    {9.058173606030460e-01f, -4.236683953637931e-01f},
    {9.052967593181188e-01f, -4.247796812091088e-01f},
    {9.047747946726327e-01f, -4.258903273439013e-01f},
    {9.042514674526569e-01f, -4.270003320955576e-01f},
    {9.037267784463131e-01f, -4.281096937924305e-01f},
    {9.032007284437731e-01f, -4.292184107638414e-01f},
    {9.026733182372588e-01f, -4.303264813400826e-01f},
    {9.021445486210405e-01f, -4.314339038524199e-01f},
    {9.016144203914357e-01f, -4.325406766330948e-01f},
    {9.010829343468079e-01f, -4.336467980153277e-01f},
    {9.005500912875654e-01f, -4.347522663333197e-01f},
    {9.000158920161603e-01f, -4.358570799222555e-01f},
    {8.994803373370870e-01f, -4.369612371183058e-01f},
    {8.989434280568812e-01f, -4.380647362586298e-01f},
    {8.984051649841186e-01f, -4.391675756813778e-01f},
    {8.978655489294136e-01f, -4.402697537256935e-01f},
    {8.973245807054183e-01f, -4.413712687317167e-01f},
    {8.967822611268210e-01f, -4.424721190405857e-01f},
    {8.962385910103452e-01f, -4.435723029944398e-01f},
    {8.956935711747483e-01f, -4.446718189364220e-01f},
    {8.951472024408204e-01f, -4.457706652106809e-01f},
    {8.945994856313827e-01f, -4.468688401623742e-01f},
    {8.940504215712870e-01f, -4.479663421376699e-01f},
    {8.935000110874138e-01f, -4.490631694837502e-01f},
    {8.929482550086714e-01f, -4.501593205488127e-01f},
    {8.923951541659944e-01f, -4.512547936820739e-01f},
    {8.918407093923427e-01f, -4.523495872337709e-01f},
    {8.912849215227001e-01f, -4.534436995551644e-01f},
    {8.907277913940732e-01f, -4.545371289985410e-01f},
    {8.901693198454897e-01f, -4.556298739172159e-01f},
    {8.896095077179980e-01f, -4.567219326655349e-01f},
    {8.890483558546646e-01f, -4.578133035988772e-01f},
    {8.884858651005743e-01f, -4.589039850736579e-01f},
    {8.879220363028281e-01f, -4.599939754473306e-01f},
    {8.873568703105417e-01f, -4.610832730783892e-01f},
    {8.867903679748451e-01f, -4.621718763263714e-01f},
    {8.862225301488806e-01f, -4.632597835518601e-01f},
    {8.856533576878016e-01f, -4.643469931164871e-01f},
    {8.850828514487716e-01f, -4.654335033829341e-01f},
    {8.845110122909626e-01f, -4.665193127149364e-01f},
    {8.839378410755541e-01f, -4.676044194772847e-01f},
    {8.833633386657316e-01f, -4.686888220358279e-01f},
    {8.827875059266853e-01f, -4.697725187574754e-01f},
    {8.822103437256089e-01f, -4.708555080101994e-01f},
    {8.816318529316984e-01f, -4.719377881630376e-01f},
    {8.810520344161502e-01f, -4.730193575860958e-01f},
    {8.804708890521608e-01f, -4.741002146505500e-01f},
    {8.798884177149244e-01f, -4.751803577286489e-01f},
    {8.793046212816323e-01f, -4.762597851937166e-01f},
    {8.787195006314716e-01f, -4.773384954201548e-01f},
    {8.781330566456232e-01f, -4.784164867834454e-01f},
    {8.775452902072614e-01f, -4.794937576601530e-01f},
    {8.769562022015515e-01f, -4.805703064279270e-01f},
    {8.763657935156495e-01f, -4.816461314655044e-01f},
    {8.757740650387004e-01f, -4.827212311527123e-01f},
    {8.751810176618363e-01f, -4.837956038704698e-01f},
    {8.745866522781761e-01f, -4.848692480007911e-01f},
    {8.739909697828232e-01f, -4.859421619267875e-01f},
    {8.733939710728648e-01f, -4.870143440326701e-01f},
    {8.727956570473698e-01f, -4.880857927037520e-01f},
    {8.721960286073888e-01f, -4.891565063264507e-01f},
    {8.715950866559510e-01f, -4.902264832882912e-01f},
    {8.709928320980644e-01f, -4.912957219779071e-01f},
    {8.703892658407133e-01f, -4.923642207850446e-01f},
    {8.697843887928577e-01f, -4.934319781005636e-01f},
    {8.691782018654314e-01f, -4.944989923164409e-01f},
    {8.685707059713409e-01f, -4.955652618257725e-01f},
    {8.679619020254642e-01f, -4.966307850227757e-01f},
    {8.673517909446490e-01f, -4.976955603027919e-01f},
    {8.667403736477115e-01f, -4.987595860622885e-01f},
    {8.661276510554351e-01f, -4.998228606988624e-01f},
    {8.655136240905691e-01f, -5.008853826112407e-01f},
    {8.648982936778269e-01f, -5.019471501992850e-01f},
    {8.642816607438848e-01f, -5.030081618639924e-01f},
    {8.636637262173812e-01f, -5.040684160074983e-01f},
    {8.630444910289141e-01f, -5.051279110330795e-01f},
    {8.624239561110406e-01f, -5.061866453451552e-01f},
    {8.618021223982749e-01f, -5.072446173492910e-01f},
    {8.611789908270876e-01f, -5.083018254522002e-01f},
    {8.605545623359034e-01f, -5.093582680617462e-01f},
    {8.599288378651004e-01f, -5.104139435869457e-01f},
    {8.593018183570085e-01f, -5.114688504379703e-01f},
    {8.586735047559073e-01f, -5.125229870261497e-01f},
    {8.580438980080262e-01f, -5.135763517639729e-01f},
    {8.574129990615412e-01f, -5.146289430650919e-01f},
    {8.567808088665750e-01f, -5.156807593443229e-01f},
    {8.561473283751945e-01f, -5.167317990176499e-01f},
    {8.555125585414098e-01f, -5.177820605022260e-01f},
    {8.548765003211730e-01f, -5.188315422163763e-01f},
    {8.542391546723761e-01f, -5.198802425796005e-01f},
    {8.536005225548502e-01f, -5.209281600125748e-01f},
    {8.529606049303636e-01f, -5.219752929371544e-01f},
    {8.523194027626210e-01f, -5.230216397763758e-01f},
    {8.516769170172609e-01f, -5.240671989544601e-01f},
    {8.510331486618554e-01f, -5.251119688968137e-01f},
    {8.503880986659081e-01f, -5.261559480300321e-01f},
    {8.497417680008525e-01f, -5.271991347819013e-01f},
    {8.490941576400509e-01f, -5.282415275814013e-01f},
    {8.484452685587929e-01f, -5.292831248587072e-01f},
    {8.477951017342936e-01f, -5.303239250451923e-01f},
    {8.471436581456926e-01f, -5.313639265734305e-01f},
    {8.464909387740521e-01f, -5.324031278771979e-01f},
    {8.458369446023557e-01f, -5.334415273914767e-01f},
    {8.451816766155068e-01f, -5.344791235524554e-01f},
    {8.445251358003272e-01f, -5.355159147975332e-01f},
    {8.438673231455553e-01f, -5.365518995653215e-01f},
    {8.432082396418454e-01f, -5.375870762956454e-01f},
    {8.425478862817651e-01f, -5.386214434295480e-01f},
    {8.418862640597948e-01f, -5.396549994092906e-01f},
    {8.412233739723254e-01f, -5.406877426783570e-01f},
    {8.405592170176576e-01f, -5.417196716814542e-01f},
    {8.398937941959995e-01f, -5.427507848645159e-01f},
    {8.392271065094661e-01f, -5.437810806747042e-01f},
    {8.385591549620770e-01f, -5.448105575604123e-01f},
    {8.378899405597550e-01f, -5.458392139712668e-01f},
    {8.372194643103249e-01f, -5.468670483581293e-01f},
    {8.365477272235120e-01f, -5.478940591731002e-01f},
    {8.358747303109401e-01f, -5.489202448695194e-01f},
    {8.352004745861303e-01f, -5.499456039019702e-01f},
    {8.345249610644997e-01f, -5.509701347262801e-01f},
    {8.338481907633595e-01f, -5.519938357995242e-01f},
    {8.331701647019132e-01f, -5.530167055800275e-01f},
    {8.324908839012561e-01f, -5.540387425273663e-01f},
    {8.318103493843727e-01f, -5.550599451023716e-01f},
    {8.311285621761358e-01f, -5.560803117671306e-01f},
    {8.304455233033046e-01f, -5.570998409849897e-01f},
    {8.297612337945230e-01f, -5.581185312205561e-01f},
    {8.290756946803191e-01f, -5.591363809397010e-01f},
    {8.283889069931020e-01f, -5.601533886095610e-01f},
    {8.277008717671618e-01f, -5.611695526985409e-01f},
    {8.270115900386670e-01f, -5.621848716763159e-01f},
    {8.263210628456635e-01f, -5.631993440138341e-01f},
    {8.256292912280727e-01f, -5.642129681833185e-01f},
    {8.249362762276903e-01f, -5.652257426582692e-01f},
    {8.242420188881840e-01f, -5.662376659134664e-01f},
    {8.235465202550933e-01f, -5.672487364249718e-01f},
    {8.228497813758264e-01f, -5.682589526701315e-01f},
    {8.221518032996592e-01f, -5.692683131275782e-01f},
    {8.214525870777344e-01f, -5.702768162772331e-01f},
    {8.207521337630588e-01f, -5.712844606003090e-01f},
    {8.200504444105025e-01f, -5.722912445793115e-01f},
    {8.193475200767969e-01f, -5.732971666980422e-01f},
    {8.186433618205335e-01f, -5.743022254416005e-01f},
    {8.179379707021619e-01f, -5.753064192963863e-01f},
    {8.172313477839882e-01f, -5.763097467501014e-01f},
    {8.165234941301740e-01f, -5.773122062917532e-01f},
    {8.158144108067338e-01f, -5.783137964116556e-01f},
    {8.151040988815345e-01f, -5.793145156014319e-01f},
    {8.143925594242929e-01f, -5.803143623540171e-01f},
    {8.136797935065747e-01f, -5.813133351636602e-01f},
    {8.129658022017924e-01f, -5.823114325259262e-01f},
    {8.122505865852039e-01f, -5.833086529376983e-01f},
    {8.115341477339112e-01f, -5.843049948971807e-01f},
    {8.108164867268581e-01f, -5.853004569039005e-01f},
    {8.100976046448293e-01f, -5.862950374587097e-01f},
    {8.093775025704479e-01f, -5.872887350637883e-01f},
    {8.086561815881750e-01f, -5.882815482226452e-01f},
    {8.079336427843067e-01f, -5.892734754401222e-01f},
    {8.072098872469734e-01f, -5.902645152223945e-01f},
    {8.064849160661379e-01f, -5.912546660769743e-01f},
    {8.057587303335938e-01f, -5.922439265127122e-01f},
    {8.050313311429637e-01f, -5.932322950397998e-01f},
    {8.043027195896973e-01f, -5.942197701697721e-01f},
    {8.035728967710708e-01f, -5.952063504155093e-01f},
    {8.028418637861839e-01f, -5.961920342912395e-01f},
    {8.021096217359593e-01f, -5.971768203125404e-01f},
    {8.013761717231402e-01f, -5.981607069963423e-01f},
    {8.006415148522891e-01f, -5.991436928609294e-01f},
    {7.999056522297859e-01f, -6.001257764259429e-01f},
    {7.991685849638264e-01f, -6.011069562123827e-01f},
    {7.984303141644207e-01f, -6.020872307426096e-01f},
    {7.976908409433912e-01f, -6.030665985403482e-01f},
    {7.969501664143711e-01f, -6.040450581306880e-01f},
    {7.962082916928030e-01f, -6.050226080400867e-01f},
    {7.954652178959369e-01f, -6.059992467963715e-01f},
    {7.947209461428283e-01f, -6.069749729287426e-01f},
    {7.939754775543372e-01f, -6.079497849677736e-01f},
    {7.932288132531257e-01f, -6.089236814454155e-01f},
    {7.924809543636567e-01f, -6.098966608949977e-01f},
    {7.917319020121923e-01f, -6.108687218512306e-01f},
    {7.909816573267918e-01f, -6.118398628502083e-01f},
    {7.902302214373100e-01f, -6.128100824294097e-01f},
    {7.894775954753960e-01f, -6.137793791277018e-01f},
    {7.887237805744907e-01f, -6.147477514853411e-01f},
    {7.879687778698258e-01f, -6.157151980439765e-01f},
    {7.872125884984216e-01f, -6.166817173466510e-01f},
    {7.864552135990858e-01f, -6.176473079378039e-01f},
    {7.856966543124112e-01f, -6.186119683632733e-01f},
    {7.849369117807745e-01f, -6.195756971702979e-01f},
    {7.841759871483340e-01f, -6.205384929075197e-01f},
    {7.834138815610288e-01f, -6.215003541249855e-01f},
    {7.826505961665757e-01f, -6.224612793741500e-01f},
    {7.818861321144691e-01f, -6.234212672078768e-01f},
    {7.811204905559779e-01f, -6.243803161804418e-01f},
    {7.803536726441443e-01f, -6.253384248475345e-01f},
    {7.795856795337824e-01f, -6.262955917662607e-01f},
    {7.788165123814760e-01f, -6.272518154951441e-01f},
    {7.780461723455767e-01f, -6.282070945941292e-01f},
    {7.772746605862029e-01f, -6.291614276245828e-01f},
    {7.765019782652373e-01f, -6.301148131492967e-01f},
    {7.757281265463254e-01f, -6.310672497324895e-01f},
    {7.749531065948739e-01f, -6.320187359398091e-01f},
    {7.741769195780490e-01f, -6.329692703383341e-01f},
    {7.733995666647743e-01f, -6.339188514965771e-01f},
    {7.726210490257291e-01f, -6.348674779844861e-01f},
    {7.718413678333470e-01f, -6.358151483734467e-01f},
    {7.710605242618138e-01f, -6.367618612362842e-01f},
    {7.702785194870657e-01f, -6.377076151472665e-01f},
    {7.694953546867879e-01f, -6.386524086821050e-01f},
    {7.687110310404124e-01f, -6.395962404179578e-01f},
    {7.679255497291163e-01f, -6.405391089334316e-01f},
    {7.671389119358204e-01f, -6.414810128085832e-01f},
    {7.663511188451869e-01f, -6.424219506249224e-01f},
    {7.655621716436182e-01f, -6.433619209654138e-01f},
    {7.647720715192542e-01f, -6.443009224144792e-01f},
    {7.639808196619715e-01f, -6.452389535579994e-01f},
    {7.631884172633813e-01f, -6.461760129833163e-01f},
    {7.623948655168271e-01f, -6.471120992792355e-01f},
    {7.616001656173835e-01f, -6.480472110360278e-01f},
    {7.608043187618542e-01f, -6.489813468454321e-01f},
    {7.600073261487703e-01f, -6.499145053006563e-01f},
    {7.592091889783881e-01f, -6.508466849963809e-01f},
    {7.584099084526877e-01f, -6.517778845287601e-01f},
    {7.576094857753715e-01f, -6.527081024954242e-01f},
    {7.568079221518612e-01f, -6.536373374954818e-01f},
    {7.560052187892974e-01f, -6.545655881295217e-01f},
    {7.552013768965365e-01f, -6.554928529996153e-01f},
    {7.543963976841503e-01f, -6.564191307093185e-01f},
    {7.535902823644226e-01f, -6.573444198636738e-01f},
    {7.527830321513488e-01f, -6.582687190692122e-01f},
    {7.519746482606328e-01f, -6.591920269339562e-01f},
    {7.511651319096865e-01f, -6.601143420674205e-01f},
    {7.503544843176265e-01f, -6.610356630806152e-01f},
    {7.495427067052737e-01f, -6.619559885860479e-01f},
    {7.487298002951505e-01f, -6.628753171977246e-01f},
    {7.479157663114792e-01f, -6.637936475311532e-01f},
    {7.471006059801801e-01f, -6.647109782033448e-01f},
    {7.462843205288703e-01f, -6.656273078328160e-01f},
    {7.454669111868606e-01f, -6.665426350395909e-01f},
    {7.446483791851549e-01f, -6.674569584452033e-01f},
    {7.438287257564475e-01f, -6.683702766726985e-01f},
    {7.430079521351217e-01f, -6.692825883466360e-01f},
    {7.421860595572477e-01f, -6.701938920930909e-01f},
    {7.413630492605809e-01f, -6.711041865396560e-01f},
    {7.405389224845600e-01f, -6.720134703154446e-01f},
    {7.397136804703048e-01f, -6.729217420510915e-01f},
    {7.388873244606151e-01f, -6.738290003787560e-01f},
    {7.380598556999681e-01f, -6.747352439321236e-01f},
    {7.372312754345167e-01f, -6.756404713464076e-01f},
    {7.364015849120877e-01f, -6.765446812583521e-01f},
    {7.355707853821803e-01f, -6.774478723062332e-01f},
    {7.347388780959635e-01f, -6.783500431298615e-01f},
    {7.339058643062745e-01f, -6.792511923705841e-01f},
    {7.330717452676171e-01f, -6.801513186712865e-01f},
    {7.322365222361595e-01f, -6.810504206763948e-01f},
    {7.314001964697324e-01f, -6.819484970318775e-01f},
    {7.305627692278276e-01f, -6.828455463852481e-01f},
    {7.297242417715950e-01f, -6.837415673855661e-01f},
    {7.288846153638420e-01f, -6.846365586834405e-01f},
    {7.280438912690308e-01f, -6.855305189310302e-01f},
    {7.272020707532766e-01f, -6.864234467820476e-01f},
    {7.263591550843460e-01f, -6.873153408917591e-01f},
    {7.255151455316546e-01f, -6.882061999169885e-01f},
    {7.246700433662657e-01f, -6.890960225161182e-01f},
    {7.238238498608879e-01f, -6.899848073490914e-01f},
    {7.229765662898732e-01f, -6.908725530774144e-01f},
    {7.221281939292153e-01f, -6.917592583641577e-01f},
    {7.212787340565479e-01f, -6.926449218739597e-01f},
    {7.204281879511419e-01f, -6.935295422730269e-01f},
    {7.195765568939045e-01f, -6.944131182291369e-01f},
    {7.187238421673769e-01f, -6.952956484116404e-01f},
    {7.178700450557317e-01f, -6.961771314914630e-01f},
    {7.170151668447722e-01f, -6.970575661411068e-01f},
    {7.161592088219294e-01f, -6.979369510346534e-01f},
    {7.153021722762606e-01f, -6.988152848477649e-01f},
    {7.144440584984474e-01f, -6.996925662576865e-01f},
    {7.135848687807936e-01f, -7.005687939432483e-01f},
    {7.127246044172235e-01f, -7.014439665848672e-01f},
    {7.118632667032795e-01f, -7.023180828645491e-01f},
    {7.110008569361208e-01f, -7.031911414658905e-01f},
    {7.101373764145209e-01f, -7.040631410740809e-01f},
    {7.092728264388657e-01f, -7.049340803759049e-01f},
    {7.084072083111520e-01f, -7.058039580597435e-01f},
    {7.075405233349850e-01f, -7.066727728155766e-01f}
};

